package com.evildog.workspace.system.application.convert;

import com.evildog.workspace.system.application.bo.DictDataListBO;
import com.evildog.workspace.system.application.dto.DictDataDTO;
import com.evildog.workspace.system.application.dto.DictDataListDTO;
import com.evildog.workspace.system.application.entity.DictData;
import com.evildog.workspace.system.application.entity.DictDataListDO;
import com.evildog.workspace.system.application.model.DictDataListParam;
import com.evildog.workspace.system.application.model.DictDataParam;
import com.evildog.workspace.system.application.vo.DictDataListVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface DictDataConvert {

    DictDataConvert INSTANCE = Mappers.getMapper(DictDataConvert.class);

    DictDataListDTO convert(DictDataListParam dictDataListParam);

    DictDataDTO convert(DictDataParam dictDataParam);

    @Mapping(target = "isDeleted", ignore = true)
    DictData convert(DictDataDTO dictDataDTO);

    List<DictDataListBO> convert(List<DictDataListDO> dictDataList);

    List<DictDataListVO> convertVoList(List<DictDataListBO> dictDataListBO);

    List<DictDataListBO> convertBOList(List<DictData> list);
}